In most computer data-communication networks, information is sent in bit- or byte-serial form. However, most computers, e.g., central processing unit (CPU) and memory systems, process data in byte- (or word-) parallel form. Thus, most network-interface devices ordinarily include a “shift register”, e.g., a First-In-First-Out (FIFO) buffer, in order to assemble a sequence of arriving message bits into a block of bytes/words. Assembly of message bits typically also includes some form of transmission-error detection and/or correction system. The block of bytes/words is then transferred to a computer simultaneously, i.e., in parallel form. Many data-communication systems divide messages into limited-size “packets” for this and other purpose, where the block-size limit varies among systems.
Serial-to-parallel assembly of data entails a certain time delay before a network interface is ready to transfer each assembled part of a message between the communication medium and the computer.
The Internet is a world-wide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high speed data communication lines between major nodes or host computers consisting of thousands of commercial, government, educational, and other computer systems that route data and messages.
World Wide Web (“WWW” or “Web”) refers to the total set of interlinked hypertext documents residing on hypertext transfer protocol (HTTP) servers all around the world. Documents on the WWW, called pages or Web pages, have historically been written in hypertext mark-up language (HTML) identified by uniform resource locators (URL) that specify the particular machine and pathname by which a file can be accessed and transmitted from node to node to the end user under HTTP. A Web site is a related group of these documents and associated files, scripts, subprocedures, and databases that are served up by an HTTP server on the WWW.
Users need a browser program and an Internet connection to access a Web site. The browser programs, also called “Web browsers,” are client applications that enable a user to navigate the Internet and view HTML documents on the WWW, another network, or the user computer. Web browsers also allow users to follow codes called “tags” imbedded in an HTML document, which associate particular words and images in the document with URLs so that a user can access another file that may be half way around the world, at the press of a key or the click of a mouse.
These files may contain: text (in a variety of fonts and styles); graphic images; movie files; sounds as well as Java applets; Practical Extraction and Report Language (Perl) applications; other scripted languages; ActiveX-controls; or other small imbedded software programs that execute when the user activates them by, for example, clicking on a link. Scripts are applications that are executed by a HTTP server in response to a request by a user. These scripts are invoked by a HTTP “daemon” to do a single job, and then they exit.
One type of script is a common gateway interface (CGI) script. Generally, a CGI script is invoked when a user clicks on an element in a web page, such as a link or image. CGI scripts are used to provide interactivity in a Web page. CGI scripts can be written in many languages including C, C++, and Perl. A CGI-BIN is a library of CGI scripts applications that can be executed by a HTTP server.
Internet cookies or HTTP cookies consist of blocks of data that a web server returns to a user in response to a request from the user. The HTTP cookies are stored in “cookie” fields of the HTTP message protocol headers (message protocol headers or message headers). The block of data is then stored on the user's system (client). When the user returns to the same web site, the user sends a copy of the cookie back to the web server, thereby identifying the user to the web server. Cookies are used to identify users, to instruct the server to send a customized version of the requested web page, to submit account information for the user, and for other administrative purposes.
Message protocol headers are ordinarily analyzed after initial parts of an arriving message are transferred to a computer. The analysis of the message protocol headers causes further time delay in addition to the delay due to the serial-to-parallel data assembly. For example, in a conventional network, the server (host), specifically the operating system of the server, analyzes the message protocol headers by performing HTTP message header recognition and parsing to extract the HTTP message headers and the HTTP cookies. This HTTP message header recognition and parsing is a time-consuming process and thus limits the server's capacity to support the network when message arrival rates are high, resulting in low quality of service and an extended waiting period for users to receive services. As data transmission speeds increase, these delays contribute to limiting the overall performance of a computer-based communication and application system.
One solution in the prior art consists of using a monolithic integrated circuit, which includes a network interface and a microprocessor, to perform some of the analysis of the message headers ordinarily done by a server. The microprocessor can perform the analysis at a faster rate than the server. However, this prior art solution is still not adequate to cope with the ever-increasing message delivery and arrival rates.
There is a need therefore, for an enhanced arrangement which will improve system performance and quality of services of network servers so that information can be accessed by users at an increased speed.